obj = make(map[string]interface{})

zone, err := getZone(d, config)
if err != nil {
	return err
}
if zone == "" {
	return fmt.Errorf("zone must be non-empty - set in resource or at provider-level")
}

// resourcePolicies are referred to by region but affixed to zonal disks.
// We construct the regional name from the zone:
//   projects/{project}/regions/{region}/resourcePolicies/{resourceId}
region := getRegionFromZone(zone)
if region == "" {
	return fmt.Errorf("invalid zone %q, unable to infer region from zone", zone)
}

name, err := expandNestedComputeDiskResourcePolicyAttachmentName(d.Get("name"), d, config)
if err != nil {
  return err
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(name)) && (ok || !reflect.DeepEqual(v, name)) {
  obj["resourcePolicies"] = []interface{}{fmt.Sprintf("projects/%s/regions/%s/resourcePolicies/%s", project, region, name)}
}
